Справочное руководство по TDMS 7.0 API
VB Script
Смотри также Отправить замечание

Glossary Item Box

Исходный текст

Option Explicit
Call ExportObjectEventsList(ThisObject)


'==============================================================================
' Вывести в лист Excel данные о событиях объекта, вызванные пользователем, создавшим объект
'==============================================================================
Sub ExportObjectEventsList(Obj)
        Dim User,    EvColl, EvFilter, ex, exRow, EventObj, strType
        
        'ПОлучить ссылку на пользователя и на коллекцию событий объекта
        Set EvColl = Obj.Events
        Set User = Obj.CreateUser
        
        'Включить фильтр
        Set EvFilter = EvColl.Filter
        EvFilter.User = User 
        EvFilter.On = TRUE '!! Не забыть включить фильтр
        
        'Если коллекция получилась пустой, закончить работу
        If EvColl.Count = 0 Then 
                MsgBox "Для пользователя " & User.Description & Chr(10) & _
                                    " событий не зарегистрировано.", vbInformation
                Exit Sub        
        End If
        
        ' Запустить приложение MSExcel
        Set ex = CreateObject("Excel.Application")
        
        ' Добавить Книгу MSExcel
        ex.Workbooks.Add
        ex.Application.WindowState = -4140 ' xlMinimized 
        ex.Application.Visible = True        
        
        ' Инициализация первой строки листа
        exRow = 1
        ' Заполнение заголовков
        With ex.ActiveSheet
          .Cells(exRow,1).Value  = "Тип события"
          .Cells(exRow,2).Value  = "Описание генератора события"
          .Cells(exRow,3).Value  = "Время события"
        End With
        
        ' Отобрать события, вызванные данным пользователем за
        ' последний месяц, и вывести их список в MSExcel
        For Each EventObj In EvColl
            ' Получить тип события из массива по его номеру
                 Call GetEventType(EventObj.Type, strType)    
        
                ' Увеличиваем номер строки таблицы 
            exRow = exRow + 1
        
            ' Заполняем строку таблицы свойствами события
            With ex.ActiveSheet
              .Cells(exRow,1).Value = strType
              .Cells(exRow,2).Value = EventObj.Description
              .Cells(exRow,3).Value = EventObj.Time
            End With
        Next
        
        'Сообщить количество событий в отфильтрованной коллекции
            MsgBox "Для пользователя " & User.Description & Chr(10) & " зарегистрировано " _
            &     EvColl.Count & " событий в коллекции объекта.", vbInformation
            
         ' Показать окно MSExcel
            ex.ActiveSheet.Columns.AutoFit
            ex.Application.WindowState = -4137' xlMaximized
End Sub
'==============================================================================      
            

'==============================================================================      
'Получить из массива строку с описанием типа события
Sub GetEventType(intEventType, strType)
        Dim EventType

        EventType = Array("Не определен", "Вход пользователя в систему", _
                                                "Выход пользователя из системы", "Создание объекта", "Редактирование объекта", _
                                                "Удаление объекта", "Создание версии объекта", "Удаление версии объекта", _
                                                "Дублирование объекта", "Изменение статуса объекта", "Простановка подписи на объект ", _
                                                "Добавление объекта в состав", "Удаление объекта из состава", "Исполнение команды", _
                                                "Событие общего вида (пользовательское)", "Экспорт объектов TDMS", _
                                                "Импорт объектов TDMS", "Экспорт схемы базы данных", "Ошибка", _
                                                "Добавление файла в файловый состав объекта", "Удаление файла", _
                                                "Выгрузка файла на жесткий диск", "Загрузка файла в хранилище файлов TDMS")
                                                
         Select Case intEventType
                Case tdmEventUndefined 
                    strType = EventType(0)
               Case tdmEventUserLogin 
                    strType = EventType(1)
               Case tdmEventUserLogoff
                    strType = EventType(2)
               Case tdmEventObjectCreate 
                    strType = EventType(3)
               Case tdmEventObjectEdit 
                    strType = EventType(4)
               Case tdmEventObjectRemove 
                    strType = EventType(5)
               Case tdmEventObjectVersion 
                    strType = EventType(6)
               Case tdmEventObjectVersionRemove 
                    strType = EventType(7)
               Case tdmEventObjectDuplicate
                    strType = EventType(8)
               Case tdmEventObjectStatus
                    strType = EventType(9)
               Case tdmEventObjectSigned
                    strType = EventType(10)
               Case tdmEventObjectContentAdd
                    strType = EventType(11)
               Case tdmEventObjectContentRemove
                    strType = EventType(12)
               Case tdmEventCommand 
                    strType = EventType(13)
               Case tdmEventCommon
                    strType = EventType(14)
               Case tdmEventExportObjects 
                    strType = EventType(15)
               Case tdmEventImportObjects
                    strType = EventType(16)
               Case tdmEventExportScheme
                    strType = EventType(17)
               Case tdmEventError
                     strType = EventType(18)
               Case tdmEventFileAdd 
                     strType = EventType(19)
               Case tdmEventFileErase  
                     strType = EventType(20)
               Case tdmEventFileCheckOut 
                     strType = EventType(21)
               Case tdmEventFileCheckIn 
                     strType = EventType(22)
             End Select
End Sub
'==============================================================================      
© 2023 CSoft Development. Все права защищены.